﻿package com.cxl.xc.test;


import com.baidu.aip.speech.AipSpeech;
import com.baidu.aip.speech.TtsResponse;
import com.baidu.aip.util.Util;
import org.json.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;

@RestController
@RequestMapping("/v1/api")
public class ReadApi {

    public static final String APP_ID = "";
    public static final String API_KEY = "";
    public static final String SECRET_KEY = "";


    @GetMapping("d2/{value}")
    public String test2(@PathVariable("value")String value) throws IOException {

        if(value.contains("你好")){
            value="晚上好！";
        }

        if(value.contains("名字") && value.contains("你")){
            value="先生，我叫小C";
        }


        if(value.contains("爱")){
            value="我爱你，先生";
        }




        // 初始化一个AipSpeech
        AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);
        // 可选：设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);
        // 也可以直接通过jvm启动参数设置此环境变量
        System.setProperty("aip.log4j.conf", "log4j.properties");
        // 调用接口
        // 设置可选参数
        HashMap<String, Object> options = new HashMap<String, Object>();
        options.put("spd", "5");
        options.put("pit", "5");
        options.put("per", "4");
        TtsResponse res = client.synthesis(value, "zh", 4, options);
        byte[] data = res.getData();
        JSONObject res1 = res.getResult();
        String fileUrl = "";
        if (data != null) {
            String temp = System.currentTimeMillis() +".mp3";
            fileUrl = "C:\\Users\\86186\\Desktop\\ly\\"+temp;
            Util.writeBytesToFileSystem(data,fileUrl );
            fileUrl = "http://127.0.0.1/"+temp;
        }
        if (res1 != null) {
            System.out.println(res1.toString(2));
        }
        return fileUrl;
    }




    @PostMapping("/inter1")
    public String test(@RequestParam MultipartFile file) throws IOException {

        // 初始化一个AipSpeech
        AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);

        // 可选：设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 可选：设置代理服务器地址, http和socket二选一，或者均不设置
        //client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理
        //client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理

        // 可选：设置log4j日志输出格式，若不设置，则使用默认配置
        // 也可以直接通过jvm启动参数设置此环境变量
        System.setProperty("aip.log4j.conf", "log4j.properties");

        // 调用接口

        JSONObject res = client.asr(file.getBytes(),"pcm",16000,null);
        System.out.println(res.toString(2));

        return res.toString(2);
    }




}
